# ifndef BOOST_PREPROCESSOR_HEX_VALUE_HPP
# define BOOST_PREPROCESSOR_HEX_VALUE_HPP

//handle MS VC++ idiosyncrasy of not putting 0x prefix when streaming pointers
#ifdef _MSC_VER
#define BMOCK_HEX_PREFIX "0x"
#else
#define BMOCK_HEX_PREFIX ""
#endif

#define BOOST_PP_HEX_VALUE_00 0
#define BOOST_PP_HEX_VALUE_01 1
#define BOOST_PP_HEX_VALUE_02 2
#define BOOST_PP_HEX_VALUE_03 3
#define BOOST_PP_HEX_VALUE_04 4
#define BOOST_PP_HEX_VALUE_05 5
#define BOOST_PP_HEX_VALUE_06 6
#define BOOST_PP_HEX_VALUE_07 7
#define BOOST_PP_HEX_VALUE_08 8
#define BOOST_PP_HEX_VALUE_09 9
#define BOOST_PP_HEX_VALUE_0A 10
#define BOOST_PP_HEX_VALUE_0B 11
#define BOOST_PP_HEX_VALUE_0C 12
#define BOOST_PP_HEX_VALUE_0D 13
#define BOOST_PP_HEX_VALUE_0E 14
#define BOOST_PP_HEX_VALUE_0F 15
#define BOOST_PP_HEX_VALUE_10 16
#define BOOST_PP_HEX_VALUE_11 17
#define BOOST_PP_HEX_VALUE_12 18
#define BOOST_PP_HEX_VALUE_13 19
#define BOOST_PP_HEX_VALUE_14 20
#define BOOST_PP_HEX_VALUE_15 21
#define BOOST_PP_HEX_VALUE_16 22
#define BOOST_PP_HEX_VALUE_17 23
#define BOOST_PP_HEX_VALUE_18 24
#define BOOST_PP_HEX_VALUE_19 25
#define BOOST_PP_HEX_VALUE_1A 26
#define BOOST_PP_HEX_VALUE_1B 27
#define BOOST_PP_HEX_VALUE_1C 28
#define BOOST_PP_HEX_VALUE_1D 29
#define BOOST_PP_HEX_VALUE_1E 30
#define BOOST_PP_HEX_VALUE_1F 31
#define BOOST_PP_HEX_VALUE_20 32
#define BOOST_PP_HEX_VALUE_21 33
#define BOOST_PP_HEX_VALUE_22 34
#define BOOST_PP_HEX_VALUE_23 35
#define BOOST_PP_HEX_VALUE_24 36
#define BOOST_PP_HEX_VALUE_25 37
#define BOOST_PP_HEX_VALUE_26 38
#define BOOST_PP_HEX_VALUE_27 39
#define BOOST_PP_HEX_VALUE_28 40
#define BOOST_PP_HEX_VALUE_29 41
#define BOOST_PP_HEX_VALUE_2A 42
#define BOOST_PP_HEX_VALUE_2B 43
#define BOOST_PP_HEX_VALUE_2C 44
#define BOOST_PP_HEX_VALUE_2D 45
#define BOOST_PP_HEX_VALUE_2E 46
#define BOOST_PP_HEX_VALUE_2F 47
#define BOOST_PP_HEX_VALUE_30 48
#define BOOST_PP_HEX_VALUE_31 49
#define BOOST_PP_HEX_VALUE_32 50
#define BOOST_PP_HEX_VALUE_33 51
#define BOOST_PP_HEX_VALUE_34 52
#define BOOST_PP_HEX_VALUE_35 53
#define BOOST_PP_HEX_VALUE_36 54
#define BOOST_PP_HEX_VALUE_37 55
#define BOOST_PP_HEX_VALUE_38 56
#define BOOST_PP_HEX_VALUE_39 57
#define BOOST_PP_HEX_VALUE_3A 58
#define BOOST_PP_HEX_VALUE_3B 59
#define BOOST_PP_HEX_VALUE_3C 60
#define BOOST_PP_HEX_VALUE_3D 61
#define BOOST_PP_HEX_VALUE_3E 62
#define BOOST_PP_HEX_VALUE_3F 63
#define BOOST_PP_HEX_VALUE_40 64
#define BOOST_PP_HEX_VALUE_41 65
#define BOOST_PP_HEX_VALUE_42 66
#define BOOST_PP_HEX_VALUE_43 67
#define BOOST_PP_HEX_VALUE_44 68
#define BOOST_PP_HEX_VALUE_45 69
#define BOOST_PP_HEX_VALUE_46 70
#define BOOST_PP_HEX_VALUE_47 71
#define BOOST_PP_HEX_VALUE_48 72
#define BOOST_PP_HEX_VALUE_49 73
#define BOOST_PP_HEX_VALUE_4A 74
#define BOOST_PP_HEX_VALUE_4B 75
#define BOOST_PP_HEX_VALUE_4C 76
#define BOOST_PP_HEX_VALUE_4D 77
#define BOOST_PP_HEX_VALUE_4E 78
#define BOOST_PP_HEX_VALUE_4F 79
#define BOOST_PP_HEX_VALUE_50 80
#define BOOST_PP_HEX_VALUE_51 81
#define BOOST_PP_HEX_VALUE_52 82
#define BOOST_PP_HEX_VALUE_53 83
#define BOOST_PP_HEX_VALUE_54 84
#define BOOST_PP_HEX_VALUE_55 85
#define BOOST_PP_HEX_VALUE_56 86
#define BOOST_PP_HEX_VALUE_57 87
#define BOOST_PP_HEX_VALUE_58 88
#define BOOST_PP_HEX_VALUE_59 89
#define BOOST_PP_HEX_VALUE_5A 90
#define BOOST_PP_HEX_VALUE_5B 91
#define BOOST_PP_HEX_VALUE_5C 92
#define BOOST_PP_HEX_VALUE_5D 93
#define BOOST_PP_HEX_VALUE_5E 94
#define BOOST_PP_HEX_VALUE_5F 95
#define BOOST_PP_HEX_VALUE_60 96
#define BOOST_PP_HEX_VALUE_61 97
#define BOOST_PP_HEX_VALUE_62 98
#define BOOST_PP_HEX_VALUE_63 99
#define BOOST_PP_HEX_VALUE_64 100
#define BOOST_PP_HEX_VALUE_65 101
#define BOOST_PP_HEX_VALUE_66 102
#define BOOST_PP_HEX_VALUE_67 103
#define BOOST_PP_HEX_VALUE_68 104
#define BOOST_PP_HEX_VALUE_69 105
#define BOOST_PP_HEX_VALUE_6A 106
#define BOOST_PP_HEX_VALUE_6B 107
#define BOOST_PP_HEX_VALUE_6C 108
#define BOOST_PP_HEX_VALUE_6D 109
#define BOOST_PP_HEX_VALUE_6E 110
#define BOOST_PP_HEX_VALUE_6F 111
#define BOOST_PP_HEX_VALUE_70 112
#define BOOST_PP_HEX_VALUE_71 113
#define BOOST_PP_HEX_VALUE_72 114
#define BOOST_PP_HEX_VALUE_73 115
#define BOOST_PP_HEX_VALUE_74 116
#define BOOST_PP_HEX_VALUE_75 117
#define BOOST_PP_HEX_VALUE_76 118
#define BOOST_PP_HEX_VALUE_77 119
#define BOOST_PP_HEX_VALUE_78 120
#define BOOST_PP_HEX_VALUE_79 121
#define BOOST_PP_HEX_VALUE_7A 122
#define BOOST_PP_HEX_VALUE_7B 123
#define BOOST_PP_HEX_VALUE_7C 124
#define BOOST_PP_HEX_VALUE_7D 125
#define BOOST_PP_HEX_VALUE_7E 126
#define BOOST_PP_HEX_VALUE_7F 127
#define BOOST_PP_HEX_VALUE_80 128
#define BOOST_PP_HEX_VALUE_81 129
#define BOOST_PP_HEX_VALUE_82 130
#define BOOST_PP_HEX_VALUE_83 131
#define BOOST_PP_HEX_VALUE_84 132
#define BOOST_PP_HEX_VALUE_85 133
#define BOOST_PP_HEX_VALUE_86 134
#define BOOST_PP_HEX_VALUE_87 135
#define BOOST_PP_HEX_VALUE_88 136
#define BOOST_PP_HEX_VALUE_89 137
#define BOOST_PP_HEX_VALUE_8A 138
#define BOOST_PP_HEX_VALUE_8B 139
#define BOOST_PP_HEX_VALUE_8C 140
#define BOOST_PP_HEX_VALUE_8D 141
#define BOOST_PP_HEX_VALUE_8E 142
#define BOOST_PP_HEX_VALUE_8F 143
#define BOOST_PP_HEX_VALUE_90 144
#define BOOST_PP_HEX_VALUE_91 145
#define BOOST_PP_HEX_VALUE_92 146
#define BOOST_PP_HEX_VALUE_93 147
#define BOOST_PP_HEX_VALUE_94 148
#define BOOST_PP_HEX_VALUE_95 149
#define BOOST_PP_HEX_VALUE_96 150
#define BOOST_PP_HEX_VALUE_97 151
#define BOOST_PP_HEX_VALUE_98 152
#define BOOST_PP_HEX_VALUE_99 153
#define BOOST_PP_HEX_VALUE_9A 154
#define BOOST_PP_HEX_VALUE_9B 155
#define BOOST_PP_HEX_VALUE_9C 156
#define BOOST_PP_HEX_VALUE_9D 157
#define BOOST_PP_HEX_VALUE_9E 158
#define BOOST_PP_HEX_VALUE_9F 159
#define BOOST_PP_HEX_VALUE_A0 160
#define BOOST_PP_HEX_VALUE_A1 161
#define BOOST_PP_HEX_VALUE_A2 162
#define BOOST_PP_HEX_VALUE_A3 163
#define BOOST_PP_HEX_VALUE_A4 164
#define BOOST_PP_HEX_VALUE_A5 165
#define BOOST_PP_HEX_VALUE_A6 166
#define BOOST_PP_HEX_VALUE_A7 167
#define BOOST_PP_HEX_VALUE_A8 168
#define BOOST_PP_HEX_VALUE_A9 169
#define BOOST_PP_HEX_VALUE_AA 170
#define BOOST_PP_HEX_VALUE_AB 171
#define BOOST_PP_HEX_VALUE_AC 172
#define BOOST_PP_HEX_VALUE_AD 173
#define BOOST_PP_HEX_VALUE_AE 174
#define BOOST_PP_HEX_VALUE_AF 175
#define BOOST_PP_HEX_VALUE_B0 176
#define BOOST_PP_HEX_VALUE_B1 177
#define BOOST_PP_HEX_VALUE_B2 178
#define BOOST_PP_HEX_VALUE_B3 179
#define BOOST_PP_HEX_VALUE_B4 180
#define BOOST_PP_HEX_VALUE_B5 181
#define BOOST_PP_HEX_VALUE_B6 182
#define BOOST_PP_HEX_VALUE_B7 183
#define BOOST_PP_HEX_VALUE_B8 184
#define BOOST_PP_HEX_VALUE_B9 185
#define BOOST_PP_HEX_VALUE_BA 186
#define BOOST_PP_HEX_VALUE_BB 187
#define BOOST_PP_HEX_VALUE_BC 188
#define BOOST_PP_HEX_VALUE_BD 189
#define BOOST_PP_HEX_VALUE_BE 190
#define BOOST_PP_HEX_VALUE_BF 191
#define BOOST_PP_HEX_VALUE_C0 192
#define BOOST_PP_HEX_VALUE_C1 193
#define BOOST_PP_HEX_VALUE_C2 194
#define BOOST_PP_HEX_VALUE_C3 195
#define BOOST_PP_HEX_VALUE_C4 196
#define BOOST_PP_HEX_VALUE_C5 197
#define BOOST_PP_HEX_VALUE_C6 198
#define BOOST_PP_HEX_VALUE_C7 199
#define BOOST_PP_HEX_VALUE_C8 200
#define BOOST_PP_HEX_VALUE_C9 201
#define BOOST_PP_HEX_VALUE_CA 202
#define BOOST_PP_HEX_VALUE_CB 203
#define BOOST_PP_HEX_VALUE_CC 204
#define BOOST_PP_HEX_VALUE_CD 205
#define BOOST_PP_HEX_VALUE_CE 206
#define BOOST_PP_HEX_VALUE_CF 207
#define BOOST_PP_HEX_VALUE_D0 208
#define BOOST_PP_HEX_VALUE_D1 209
#define BOOST_PP_HEX_VALUE_D2 210
#define BOOST_PP_HEX_VALUE_D3 211
#define BOOST_PP_HEX_VALUE_D4 212
#define BOOST_PP_HEX_VALUE_D5 213
#define BOOST_PP_HEX_VALUE_D6 214
#define BOOST_PP_HEX_VALUE_D7 215
#define BOOST_PP_HEX_VALUE_D8 216
#define BOOST_PP_HEX_VALUE_D9 217
#define BOOST_PP_HEX_VALUE_DA 218
#define BOOST_PP_HEX_VALUE_DB 219
#define BOOST_PP_HEX_VALUE_DC 220
#define BOOST_PP_HEX_VALUE_DD 221
#define BOOST_PP_HEX_VALUE_DE 222
#define BOOST_PP_HEX_VALUE_DF 223
#define BOOST_PP_HEX_VALUE_E0 224
#define BOOST_PP_HEX_VALUE_E1 225
#define BOOST_PP_HEX_VALUE_E2 226
#define BOOST_PP_HEX_VALUE_E3 227
#define BOOST_PP_HEX_VALUE_E4 228
#define BOOST_PP_HEX_VALUE_E5 229
#define BOOST_PP_HEX_VALUE_E6 230
#define BOOST_PP_HEX_VALUE_E7 231
#define BOOST_PP_HEX_VALUE_E8 232
#define BOOST_PP_HEX_VALUE_E9 233
#define BOOST_PP_HEX_VALUE_EA 234
#define BOOST_PP_HEX_VALUE_EB 235
#define BOOST_PP_HEX_VALUE_EC 236
#define BOOST_PP_HEX_VALUE_ED 237
#define BOOST_PP_HEX_VALUE_EE 238
#define BOOST_PP_HEX_VALUE_EF 239
#define BOOST_PP_HEX_VALUE_F0 240
#define BOOST_PP_HEX_VALUE_F1 241
#define BOOST_PP_HEX_VALUE_F2 242
#define BOOST_PP_HEX_VALUE_F3 243
#define BOOST_PP_HEX_VALUE_F4 244
#define BOOST_PP_HEX_VALUE_F5 245
#define BOOST_PP_HEX_VALUE_F6 246
#define BOOST_PP_HEX_VALUE_F7 247
#define BOOST_PP_HEX_VALUE_F8 248
#define BOOST_PP_HEX_VALUE_F9 249
#define BOOST_PP_HEX_VALUE_FA 250
#define BOOST_PP_HEX_VALUE_FB 251
#define BOOST_PP_HEX_VALUE_FC 252
#define BOOST_PP_HEX_VALUE_FD 253
#define BOOST_PP_HEX_VALUE_FE 254
#define BOOST_PP_HEX_VALUE_FF 255
#define BOOST_PP_HEX_VALUE(x) BOOST_PP_HEX_VALUE_ ## x
# endif
